<html>
<head><meta charset="utf-8"><title>Helping stabilize library features · t-libs · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/index.html">t-libs</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html">Helping stabilize library features</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="245569292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245569292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> inquisitivecrystal <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245569292">(Jul 10 2021 at 20:26)</a>:</h4>
<p>I've noticed that there are a lot of features in rust that have been unstable for a long time. I was wondering if there was a way I could help y'all move library features towards stabilization. Maybe drawing up some lists of features that it might be worth stabilizing?</p>



<a name="245569697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245569697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Pratt <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245569697">(Jul 10 2021 at 20:36)</a>:</h4>
<p>Any in particular you've got your eye on? A number have blockers but many don't to my knowledge. Stabilizing library features is pretty straightforward: take a look at <a href="https://rustc-dev-guide.rust-lang.org/stability.html#stabilizing-a-library-feature">the guide</a>.</p>



<a name="245569702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245569702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Pratt <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245569702">(Jul 10 2021 at 20:36)</a>:</h4>
<p>Feel free to ask questions. I've stabilized a bit myself.</p>



<a name="245569781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245569781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> inquisitivecrystal <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245569781">(Jul 10 2021 at 20:38)</a>:</h4>
<p>I don't really have any in particular in mind. Just hoping to help move the process in general along. :)</p>



<a name="245569801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245569801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> inquisitivecrystal <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245569801">(Jul 10 2021 at 20:39)</a>:</h4>
<p>Wiuld I be correct in assuming that the most important criteria are that there not be unresolved blockers and that the feature have been implemented for a while?</p>



<a name="245569870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245569870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Pratt <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245569870">(Jul 10 2021 at 20:40)</a>:</h4>
<p>That would be my assumption, yes.</p>



<a name="245569922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245569922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Pratt <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245569922">(Jul 10 2021 at 20:42)</a>:</h4>
<p>Smaller APIs are also likely easier to land as they'll typically be less controversial.</p>



<a name="245612314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245612314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245612314">(Jul 11 2021 at 15:26)</a>:</h4>
<p>That's two of the critical criteria; the third is that we have some experience reports from people who have actually tried the feature and found it to work.</p>



<a name="245612349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245612349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245612349">(Jul 11 2021 at 15:26)</a>:</h4>
<p>We want to know that it actually serves a purpose, and that we are not stabilizing something that nobody has tried.</p>



<a name="245622976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245622976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> The 8472 <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245622976">(Jul 11 2021 at 19:34)</a>:</h4>
<p>Getting people to try small unstable features seems difficult. On their own they're not worth it and even nightly-only crates might try to minimize their use of them to have a path to stabilization.</p>
<p>That mostly leaves rustc/std itself and crates with explicit nightly features.</p>



<a name="245623132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245623132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Pratt <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245623132">(Jul 11 2021 at 19:38)</a>:</h4>
<p>Certainly. But smaller APIs need less unstable usage as well. Take <a href="https://github.com/rust-lang/rust/issues/80959">#80959</a> for example — I've no idea if there was anyone actually using the method unstably. It was clearly desired, though, and had a trivial implementation, so there wasn't much pushback against stabilization.</p>



<a name="245623144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245623144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jacob Pratt <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245623144">(Jul 11 2021 at 19:39)</a>:</h4>
<p>And ironically rustc/std wasn't even using that feature.</p>



<a name="245625848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245625848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245625848">(Jul 11 2021 at 20:51)</a>:</h4>
<p>I'm pretty aggressive about using unstable features in my private projects. My codebase isn't going to be working on stable anytime soon so I might as well take advantage of all the unstable features. The code is still being actively developed and maintained so it isn't much trouble to fix the code if breakage occurs.</p>



<a name="245626714"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245626714" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245626714">(Jul 11 2021 at 21:02)</a>:</h4>
<p>Been burned by unstable features recently (<code>never_type</code>, <code>external_doc</code>, <code>const_fn</code> in particular) so been moving affected repositories to beta/stable recently, myself. I do have some features I would like stabilized (<code>Once</code>, <code>unboxed_closures</code> for example), but I also don't feel too strongly about it, because especially as far as library features are concerned, most of the time there's a crate in the ecosystem that can provide equivalent functionality.</p>



<a name="245627925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245627925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245627925">(Jul 11 2021 at 21:22)</a>:</h4>
<p>Features I'm using: <code>is_sorted, maybe_uninit_slice, maybe_uninit_ref, maybe_uninit_extra, vec_spare_capacity, maybe_uninit_ref, thread_local, asm, naked_functions, iter_partition_in_place, alloc_error_handler, atomic_mut_ptr, never_type, const_fn_trait_bound</code></p>



<a name="245627967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245627967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245627967">(Jul 11 2021 at 21:23)</a>:</h4>
<p>Plus a bunch of unstable rustc flags (<code>-Zinstrument-coverage</code>, JSON targets) &amp; cargo features (<code>--profile</code>, <code>--config</code>, resolver v2)</p>



<a name="245653028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/219381-t-libs/topic/Helping%20stabilize%20library%20features/near/245653028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/219381-t-libs/topic/Helping.20stabilize.20library.20features.html#245653028">(Jul 12 2021 at 07:23)</a>:</h4>
<p>I always use nightly because rustfmt holds back on the good stuff, but for rust itself i avoid nightly features as much as i can. I usually just don't even write the code at all rather than turning on a nightly feature, unless that feature is completely critical to getting something done (eg: inline_asm).</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>